// 该元素比左边都大 比右边都小
// O(n)
function findPeek(arr) {
    if (arr.length < 1) return -1;
    if (arr.length === 1) return 0;

    // 处理两端
    const max = [arr[0]];  // 最大取最开始 后面依次加
    const min = [arr[arr.length - 1]] // 最小取 最后后面依次 前面追加

    // 左右两边都不满足条件？ (没有左右比较因此无效)  // 找比左边都大的
    for (let i = 1; i < arr.length - 1; i++) {
        if (arr[i] > max[max.length - 1]) {
            max.push(arr[i])
        }
    }
    console.log(max)

    for (let i = arr.length - 2; i >= 0; i--) {  // 找比右边都小的
        if (arr[i] < min[0]) {
            min.unshift(arr[i]) // 开头添加
        }
    }
    console.log(min)

    const res = max.filter(i => min.includes(i)) // 求交集
    if (res.length < 1) return -1;
    return res;

}


console.log(findPeek([8, 1, 6, 2, 3, 4, 8, 9, 12]))